Skip to content

Conversation

hyp
Copy link
Contributor

@hyp hyp commented May 9, 2023

This ensures that a C++ record with only ObjC ARC pointers with trivial other members is passed by value in SIL
Fixes #61929

Additionally,
[cxx-interop] mark C++ classes with trivial_abi attribute as unavailable in Swift

hyp added 2 commits May 9, 2023 16:23
…an't be passed in registers

This ensures that a C++ record with only ObjC ARC pointers with trivial other members is passed by value in SIL

Fixes swiftlang#61929
@hyp hyp added the c++ interop Feature: Interoperability with C++ label May 9, 2023
@hyp hyp requested review from plotfi and ravikandhadai May 9, 2023 23:25
@hyp hyp requested review from zoecarver and egorzhdan as code owners May 9, 2023 23:25
@hyp
Copy link
Contributor Author

hyp commented May 9, 2023

@swift-ci please test

@hyp
Copy link
Contributor Author

hyp commented May 9, 2023

@swift-ci please test source compatibility

@hyp
Copy link
Contributor Author

hyp commented May 10, 2023

This needs further work...

@plotfi
Copy link
Contributor

plotfi commented Jun 8, 2023

I will take a look, try this patch out and give my review soon. Thanks for looking at this @hyp!

@hyp
Copy link
Contributor Author

hyp commented Jun 12, 2023

@swift-ci please test

@hyp
Copy link
Contributor Author

hyp commented Jun 14, 2023

@swift-ci please test windows platform

@hyp
Copy link
Contributor Author

hyp commented Jun 15, 2023

Ah the macOS failure was due to a test bug :D

@hyp
Copy link
Contributor Author

hyp commented Jun 15, 2023

@swift-ci please test macOS platform

@hyp hyp changed the title [cxx-interop] C++ records should have address-only layout when they can't be passed in registers [cxx-interop] Itanium ABI C++ records should have address-only layout when they can't be passed in registers Jun 15, 2023
@hyp
Copy link
Contributor Author

hyp commented Jun 15, 2023

@swift-ci please test

@hyp
Copy link
Contributor Author

hyp commented Jun 15, 2023

@swift-ci please test source compatibility

@hyp
Copy link
Contributor Author

hyp commented Jun 15, 2023

@swift-ci please test windows platform

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c++ interop Feature: Interoperability with C++
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[C++-Interop] C++ struct passed by value to an objc_msgSend is passed as a pointer type of ABIArgInfo::Direct instead of a Indirect byval
2 participants